<?php

namespace Rebecca\RebeccaBundle\Component;

require_once "ComponentBase.php";

use Rebecca\RebeccaBundle\Entity\Periodos;
use Rebecca\RebeccaBundle\Entity\PeriodosLaborales;

/**
 * Description of TestComponent
 *
 * @author JeyDotC
 */
class PeriodosComponent extends ComponentBase {
    
    function getTipoNomina($idTipoNomina){
        return $this->em->getRepository($this->entityName)->findBy(
                        array(
                            'idTipoNomina' => $idTipoNomina
                ));
    }
    
    function getConceptos($id){
        return $this->em->getRepository("RebeccaBundle:PeriodosEnConceptos")->findBy(
                        array(
                            'idPeriodo' => $id
                ));
    }
    
    function addPeriodosLaboralesContratos($idPeriodo) {
        /* @var $Periodo Periodos */
        $Periodo = $this->get($idPeriodo);
        
        $PeriodoLaboral = new PeriodosLaborales();
        
        $PeriodoLaboral->setIdPeriodo($Periodo);
        
        $idTipoNomina = $Periodo->getIdTipoNomina()->getId();
        
        $contratos = $this->em->getRepository("RebeccaBundle:Contratos")->findBy(
                        array(
                            'idTipoNomina' => $idTipoNomina
                ));
        
        $this->save($PeriodoLaboral);
        $this->commit();
        
        foreach ($contratos as $contrato /* @var $contrato Contratos */) {
            $periodoLaboralContrato = new \Rebecca\RebeccaBundle\Entity\PeriodosLaboralesContratos();

            $periodoLaboralContrato->setIdPeriodoLaboral($PeriodoLaboral);
            $periodoLaboralContrato->setIdContrato($contrato);
            $periodoLaboralContrato->setFuePagado(FALSE);
            
            $this->save($periodoLaboralContrato);
            
            $this->commit();
        }
    }
}

?>